基于docker的webrtc开发环境

您所在的位置:网站首页 webrtc 开发环境 基于docker的webrtc开发环境

基于docker的webrtc开发环境

2024-03-20 01:01| 来源: 网络整理| 查看: 265

在root目录下先放好自定义的constants.py文件再docker run

同时记得修改PUBLIC_IP

可以跨wifi通信

docker pull piasy/apprtc-server

docker run --name apprtc -p 8080:8080 -p 8089:8089 -p 3478:3478 -p 3478:3478/udp -p 3033:3033 --expose=59000-65000 -e PUBLIC_IP=47.88.63.197 -v /root:/apprtc_configs -it piasy/apprtc-server

其中;

-e 设置环境变量的,

-v, --volume=[host-src:]container-dest[:]: Bind mount a volume.映射与共享用

附: -v选项

运行命令:docker run -it -v /home/xqh/myimage:/data ubuntu /bin/bash

其中的 -v 标记 在容器中设置了一个挂载点 /data(就是容器中的一个目录),并将主机上的 /home/xqh/myimage 目录中的内容关联到 /data下。

这样在容器中对/data目录下的操作,还是在主机上对/home/xqh/myimage的操作,都是完全实时同步的,因为这两个目录实际都是指向主机目录。

AppRTC 需要三个 Server:

Room Server: 负责处理加入房间、获取配置等请求;Signal Server: 长连接服务器,用于聊天过程中实时下发信息;TURN/STUN Server: 打洞服务器,用于 NAT 打洞;

About port expose:

8080 is used for room server; 8089 is used for signal server;3033 is used for ICE server;3478 and 59000-65000 is used for TURN/STUN server;

注意一定要开放 3478 udp 端口,否则 STUN Binding 请求进不去;

AppRTC Android demo 中,会尝试从房间配置中读取 pc_config 域,以取得 TURN/STUN Server 信息;如果没有获取到,就会向配置中的 ice_server_url 指向的服务器获取 TURN/STUN Server 信息。但 apprtc 的配置说明中,让我们把 TURN/STUN Server 配置写在 TURN_SERVER_OVERRIDE中,这是不行的,因为客户端的逻辑并不会读取 TURN_SERVER_OVERRIDE 这个域,此外 Android demo 读取 pc_config 的代码中,无法正确把 TURN Server 的用户名解析出来,所以我们不得不自己搭一个 ICE Server,这会多一次网络请求

示例的constants.py:

ICE_SERVER_BASE_URL, ICE_SERVER_URL_TEMPLATE and WSS_INSTANCES has been modified.

因此我们还需要第四个 Server:ICE Server。它用于下发 TURN/STUN Server 配置信息,代码如下

几点说明:

这里面有两个配置写死了:key = '4080218913',用户名 ninefingers,它们都是在部署 Coturn 时配置的;username/credential 并不是 Coturn 创建用户的 username/password,而是按照上述逻辑计算出来的值,否则 Coturn 会报错 401 Unauthorized;上面的 ICE Server 部署之后,Android demo 请求时会报 404,最终定位是因为 demo 用 HttpURLConnection 时设置了 connection.setDoOutput(true);,注释掉就好了,​​详见这个 commit​​;

附:运行日志

log file opened: /var/log/turn_15_2017-09-12.log

RFC 3489/5389/5766/5780/6062/6156 STUN/TURN Server

Version Coturn-4.5.0.6 'dan Eider'

Max number of open files/sockets allowed for this process: 65536

Due to the open files/sockets limitation,

max supported number of TURN Sessions possible is: 32500 (approximately)

==== Show him the instruments, Practical Frost: ====

0: TLS supported

0: DTLS supported

0: DTLS 1.2 supported

0: TURN/STUN ALPN supported

0: Third-party authorization (oAuth) supported

0: GCM (AEAD) supported

0: OpenSSL compile-time version: OpenSSL 1.0.2g 1 Mar 2016 (0x1000207f)

0: SQLite is not supported

0: Redis is not supported

0: PostgreSQL is not supported

0: MySQL is not supported

0: MongoDB is not supported

0: Default Net Engine version: 3 (UDP thread per CPU core)

=====================================================

0: Listener address to use: 0.0.0.0

0: Domain name:

0: Default realm: apprtc

0: Relay address to use: 0.0.0.0

0: pid file created: /var/run/turnserver.pid

0: IO method (main listener thread): epoll (with changelist)

0: WARNING: I cannot support STUN CHANGE_REQUEST functionality because only one IP address is provided

0: Wait for relay ports initialization...

0: relay 0.0.0.0 initialization...

0: relay 0.0.0.0 initialization done

0: Relay ports initialization done

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=0 created

0: IPv4. SCTP listener opened on : 0.0.0.0:3478

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=1 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=2 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=3 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=4 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=5 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=6 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=7 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=8 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=9 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=10 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=11 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=12 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=13 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=14 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=15 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=16 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=17 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=18 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=19 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=20 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=21 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=22 created

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: IO method (general relay thread): epoll (with changelist)

0: turn server id=23 created

0: IPv4. UDP listener opened on: 0.0.0.0:3478

0: IPv4. TCP listener opened on : 0.0.0.0:3478

0: Total General servers: 24

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (auth thread): epoll (with changelist)

0: IO method (admin thread): epoll (with changelist)

server started

参考:

​https://blog.piasy.com/2017/06/17/out-of-the-box-webrtc-dev-env/" style="color: #333333; text-decoration: underline;">​https://blog.piasy.com/2017/06/17/out-of-the-box-webrtc-dev-env/​​

​https://github.com/Piasy/WebRTC-Docker/tree/master/apprtc-server" style="color: #333333; text-decoration: underline;">​https://github.com/Piasy/WebRTC-Docker/tree/master/apprtc-server​​



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3